package br.com.carrosvale.model.entity;

import java.util.Calendar;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import org.hibernate.annotations.Index;

import br.com.carrosvale.model.entity.enuns.Sexo;

@Entity
public class UsuarioPF {

	@Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
	private Long id;
	private String nome;
	
	@Index(name = "email_pf_index")
	@Column(unique=true)
	private String email;
	
	private String senha;
	
	@Enumerated(EnumType.ORDINAL)
	private Sexo sexo;
	
	private Calendar nascimento;
	private Boolean receberNoticiasEmail;
	private String cep;
	private String cpf;
		
	@ManyToOne
	@JoinColumn
	private Cidade cidade;
	
	@OneToMany(mappedBy="usuarioPF")
	private List<Anuncio> anuncios;
	
	public UsuarioPF(){}
	
	public UsuarioPF(Long id){
		this.id=id;
	}
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Sexo getSexo() {
		return sexo;
	}
	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}
	public Calendar getNascimento() {
		return nascimento;
	}
	public void setNascimento(Calendar nascimento) {
		this.nascimento = nascimento;
	}
	public Boolean getReceberNoticiasEmail() {
		return receberNoticiasEmail;
	}
	public void setReceberNoticiasEmail(Boolean receberNoticiasEmail) {
		this.receberNoticiasEmail = receberNoticiasEmail;
	}
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}
	public Cidade getCidade() {
		return cidade;
	}
	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	public List<Anuncio> getAnuncios() {
		return anuncios;
	}
	public void setAnuncios(List<Anuncio> anuncios) {
		this.anuncios = anuncios;
	}
	
	
}
